Zadani hodnoty Now () v dotazu ADOQuery

Otázka od: administrator@novogear.cz

24. 5. 2004 13:52

Mam problem se zpusobem zadani hodnoty now() v ADOQuery
kde mi Delphi prikaz

UPDATE TZakazky SET TZakazky.DatumKonec = Now(), TZakazky.Konec =1
WHERE (((TZakazky.ID_Zakazky)=:PID_ZakazkyK))

nebere a hlasi spatnou syntaxi.

Nevite jak na to?

Dekuji

S pozdravem

Ondrej Prokop



Odpovedá: horky@cominn.cz

24. 5. 2004 14:19

> From: administrator@novogear.cz [mailto:administrator@novogear.cz]
> Sent: Monday, May 24, 2004 2:31 PM
>
> Mam problem se zpusobem zadani hodnoty now() v ADOQuery
>
> UPDATE TZakazky SET TZakazky.DatumKonec = Now(), TZakazky.Konec =1
> WHERE (((TZakazky.ID_Zakazky)=:PID_ZakazkyK))
>

Pouzivej zadavani pres parametry, tak jako to mas ve Where:

UPDATE TZakazky SET TZakazky.DatumKonec = :Nyni, TZakazky.Konec =1
WHERE (((TZakazky.ID_Zakazky)=:PID_ZakazkyK))

ParamByName('Nyni').AsDateTime := Now;
ParamByName('PID_ZakazkyK').AsInteger := MojeID;

--
S pozdravem Karel Horky, D7, FB 1.0.3, IBX 7.08, WXP SP1
[mailto:horky@cominn.cz]

Odpovedá: Ondrej Kelle

24. 5. 2004 14:48

>> Mam problem se zpusobem zadani hodnoty now() v ADOQuery
>>
>> UPDATE TZakazky SET TZakazky.DatumKonec = Now(), TZakazky.Konec =1
>> WHERE (((TZakazky.ID_Zakazky)=:PID_ZakazkyK))
>>
>
> Pouzivej zadavani pres parametry, tak jako to mas ve Where:
>
> UPDATE TZakazky SET TZakazky.DatumKonec = :Nyni, TZakazky.Konec =1
> WHERE (((TZakazky.ID_Zakazky)=:PID_ZakazkyK))
>
> ParamByName('Nyni').AsDateTime := Now;
> ParamByName('PID_ZakazkyK').AsInteger := MojeID;

Autor povodnej otazky zrejme potrebuje aktualny cas na servri. (Vkladanie
hodnoty z klienta zrejme nevyhovuje, pretoze rozne klientske stanice mozu
mat cas nastaveny rozne.)
V takom pripade potrebuje vediet syntax SQL pre vyjadrenie hodnoty "now" pre
danu databazu (mam pocit, ze toto je zavisle od konkretnej databazy). Kedze
neuviedol, o aku databazu sa jedna, tazko na tuto otazku odpovedat.
Napriklad pre Interbase/Firebird je to 'NOW':

UPDATE TZakazky SET TZakazky.DatumKonec = 'NOW', TZakazky.Konec = 1
WHERE (TZakazky.ID_Zakazky = :PID_ZakazkyK)

Mozno by tiez stalo za to napisat si trigger, ktory by ten datum doplnil
automaticky, vzdy, ked je obsah pola Konec zmeneny na hodnotu 1.

HTH
TOndrej

Odpovedá: administrator@novogear.cz

24. 5. 2004 15:39

Jedna se o MS SQL2000

>
> Autor povodnej otazky zrejme potrebuje aktualny cas na servri. (Vkladanie
> hodnoty z klienta zrejme nevyhovuje, pretoze rozne klientske stanice mozu
> mat cas nastaveny rozne.)
> V takom pripade potrebuje vediet syntax SQL pre vyjadrenie hodnoty "now" pre
> danu databazu (mam pocit, ze toto je zavisle od konkretnej databazy). Kedze
> neuviedol, o aku databazu sa jedna, tazko na tuto otazku odpovedat.
> Napriklad pre Interbase/Firebird je to 'NOW':
>


Odpovedá: Blazek Jaroslav

24. 5. 2004 15:38

Ahoj,

> administrator@novogear.cz 24.5.2004 14:30:42 >>>
>Mam problem se zpusobem zadani hodnoty now() v ADOQuery
>kde mi Delphi prikaz
>UPDATE TZakazky SET TZakazky.DatumKonec = Now(), TZakazky.Konec =1
>WHERE (((TZakazky.ID_Zakazky)=:PID_ZakazkyK))

a nad jakou databazi to jede?
v MSSQL treba takto

UPDATE TZakazky
SET DatumKonec = GETDATE(),
       Konec = 1
WHERE ID_Zakazky = :PID_ZakazkyK


S pozdravem

Bc. Jaroslav Blazek
Access-IT Ceska Lipa
mailto:jaroslav.blazek@access-it.cz
http://www.access-it.cz
ICQ# : 133673990
+420605/813644

Odpovedá: administrator@novogear.cz

25. 5. 2004 12:16

dekuji presne tak to funguje

S pozdravem

Ondrej Prokop

>
> a nad jakou databazi to jede?
> v MSSQL treba takto
>
> UPDATE TZakazky
> SET DatumKonec = GETDATE(),
> Konec = 1
> WHERE ID_Zakazky = :PID_ZakazkyK
>
>